"""
    Script que genera un archivo "Orden.txt" para ordenar los capítulos de una serie
    Argumentos:
        1. Ruta y nombre del archivo m3u
        2. Caracter dónde empieza el número del capítulo
        3. Caracter donde termina el número del capítulo.
            Ej. Para "Cap219_x264" la clave sería 3:6, por ser los caracteres del 3 al 5
            los que indican el número del capítulo.
            Por tanto se espera que el argumento 2 sea "3" y el 3 sea "6".
        4 en adelante.
             Caracteres que deben ser limpiados para homogeneizar.
            Ej. [Cap 38, Cap39, Cap_40]. Para homogeneizar se deben limpiar " " y "_"
                Por tanto se esperan que los argumentos 3 y 4 sean "\ " y "_" respectivamente.
                Dando como resultado [Cap38, Cap39, Cap40]   
"""

import sys

def main():
    ## Leer el archivo
    episodes = []
    f = open(sys.argv[1],'r')
    for line in f.readlines():
        if "#EXTM3U" in line:
            pass
        elif "#EXTINF" in line:
            episodes.append(line.split(',',maxsplit=1)[1].strip('\n'))
        elif "https:":
            pass
    f.close()

    ## Limpiar
    for c in sys.argv[4:]:
        episodes = [e.replace(c,'')for e in episodes]

    ## Agregar ceros
    start = int(sys.argv[2])
    end = int(sys.argv[3])
    episodes1 = []
    for e in episodes:
        if len(e) <= end-start:
            ceros = '0'*(end-len(e))
            episodes1.append(ceros+e)
        else:
            episodes1.append(e)
    if len(episodes1) > 0:
        episodes = episodes1    


    ## Escrbir un orden
    episodes = [e[start:end]+'\n'for e in episodes]
    with open("Orden.txt",'w') as f:
        f.writelines(episodes)

if __name__ == '__main__':
    main()